﻿// 4346. 分配任务.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*

https://www.acwing.com/problem/content/4349/

一家公司有 n
 个员工，编号 1∼n
。

公司的每个员工都有一个直属上司（全公司的最高领导除外）。

如果你是某人的直属上司，那么这个人就是你的下属，他所有的下属也是你的下属。

如果你不是任何人的直属上司，那么你就没有下属。

没有直接上司的员工就是整个公司的最高领导者。

所以这意味着 n
 个员工的上下级关系网络构成了一棵树。

公司有时会将一些任务分配给一些员工完成。

当一个任务分配给某个员工时，他会将其分配给他的所有下属。

也就是说，他和他的所有下属都将在同一时间收到这个任务。

另外，每当一个员工接收到某任务时，他都会立即停止当前任务（如果有的话），并开始新的任务。

接下来共发生了 m
 个事件，事件分为以下两种：

C x，询问员工 x
 当前正在处理的任务编号。
T x y，将任务 y
 分配给员工 x
。
对于每个询问事件，请你计算并输出答案。

输入格式
第一行包含整数 T
，表示共有 T
 组测试数据。

每组数据第一行包含整数 n
。

接下来 n−1
 行，每行包含两个整数 u,v
，表示员工 v
 是员工 u
 的直属上司。

再一行包含整数 m
。

接下来 m
 行，每行描述一个事件，格式如题面描述。

输出格式
每组数据，第一行输出 Case #i:，其中 i
 为组别编号（从 1
 开始）。

然后，每行输出一个询问的答案，如果询问员工当前无任务处理，则输出 −1
。

数据范围
1≤T≤10
,
1≤n≤50000
,
1≤u,v≤n
,
1≤m≤50000
,
1≤x≤n
,
0≤y≤109
。

输入样例：
1
5
4 3
3 2
1 3
5 2
5
C 3
T 2 1
C 3
T 3 2
C 3
输出样例：
Case #1:
-1
1
2
*/
int main()
{
    std::cout << "Hello World!\n";
}
 